This is the 6th release of these control definitions. This is primarily a maintenance
release, no new controls and only minor changes to functionality.
ALL
---
- draw correctly in ports with a background pixPat.
MAJOR BUG FIX!!!
----------------
- 3 controls in the v1.4 release had a memory leak. This has been corrected.
Affected controls were:
- PopupMenu
- Spinner
- TabPanel
GWorlds & memory footprint
--------------------------
- 5 of these CDEFs (3 sliders, spinner & DateTime) use GWorlds for smooth drawing. Previous releases kept the GWorld for the life of the control - for speed, at the expense of the memory required to keep the GWorld around. In retrospect, this seems wrong-headed, so I now create & destroy the GWorld each time these controls receive a drawCntl message.
Memory savings are dramatic! The DateTime control went from 8688 bytes to 176 bytes, Slider went from 8944 to 144.
Performance seems to be unchanged.
Windows with background PICTs
-----------------------------
- the following controls WILL NOT draw correctly if a PICT exists as the background:
DateTime
Spinner
hSlider
vSlider
TabPanel
Popup menu (title only)
It would be a fairly complex (and memory intensive) to have these work on a PICT background. It doesn't seem worth the effort. Let me know if you disagree.
3D Buttons
----------
- draws correctly on PICT backgrounds
- radio & check buttons use offscreen GWorlds to avoid title flicker on colored backgrounds
Progress Bar
-----------
- correct divide by zero error
- if min==max, switch to a "barber pole" variant.
Date & Time
-----------
- correctly handle mouse down & drag outside a digits rect
- correctly reset of control with SetControlValue(h, 0) - arrows are hidden
- correctly highlight of digits via SetControlValue(h, n) - arrows are shown
- arrow indicators always have white background
GroupBox
---------
- draws correctly on PICT backgrounds
HSlider
------
- Control no longer picks up port background color - colors are white & black (unless a 'cctb' exists)
- if a 'cctb' exists, honor cTextColor, cThumbColor & cBodyColor
- correctly handle control rect changes from MoveControl
Popup Menu
----------
- data handle was left locked.
- fix window font problem with some Claris & Microsoft apps.
- draws correctly on PICT backgrounds (as long as there is no control title).
- added a new "pseudo" variation code. Adding popupNoDeleteMenu (0x8000) to controlMax will
cause the CDEF to NOT call DeleteMenu after calling PopupMenuSelect. This will preserve menu color
information created via calls to SetMCEntries (as opposed to those in 'mctb' resources). DeleteMenu
will still be called when the control is destroyed.
Slider
-----
- no changes
Spinner
-------
- data handle was left locked.
- arrow indicators always have white background
- arrow indicators dim when at controlMin or controlMax and will not highlight when clicked.
Note: I wasn't happy with the appearance of "dimmed" arrows on 1-bit displays, so there is no visual change on 1 bit displays (but they will not highlight in response to a mouse click when at min or max).
Tab Panel
---------
- data handle was left locked.
- correctly handle mouse down & drag outside a tab
- correctly ignore disabling. Control does not support disabling, but was not functioning correctly if disabled and then enabled.
Note : If disabled, no visual change is shown (this is deliberate). I do not recommend disabling it because, if disabled, the Control Manager will not call it and mouse clicks are ignored.
Disabling this control is problematic since doing it properly would mean disabling all controls on a "Tab panel".
This is best done by the calling program, not by this CDEF.
Tog Button
----------
- corrected problem with control highlighting
- use offscreen GWorlds to avoid title flicker on colored backgrounds
VSlider
------
- Control no longer picks up port background color - colors are white & black (unless a 'cctb' exists)
- if a 'cctb' exists, honor cTextColor, cThumbColor & cBodyColor
- removed inline bitmaps, drawing done directly
- correctly handle control rect changes from MoveControl
Utility routines
--------------
movableModal.c
--------------
- added logic to beep if mouse is clicked in application window.
- changed update logic to allow background pixPats to update correctly.